/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package elaborate.tag_analysis.client.applications;

import elaborate.tag_analysis.client.event.TagProcessingEventType;
import elaborate.tag_analysis.client.event.TagProcessingEvent;
import elaborate.tag_analysis.client.event.TagProcessingEventListener;
import elaborate.task.Task;

/**
 * all Application instances will be initialized with
 * an ApplicationContext instance, which provides application-level
 * services
 * @author lendle
 */
public interface ApplicationContext {
    public void fireTagProcessingEvent(TagProcessingEventType eventType, TagProcessingEvent evnet);
    public void executeTask(Task task);
    public void executeTask(Task task, boolean preempt);
    public void addTagProcessingEventListener(TagProcessingEventListener l);
    public void removeTagProcessingEventListener(TagProcessingEventListener l);
    public void reloadResources() throws Exception;
}
